The present invention relates to data stream encoders, and more specifically to data stream encoders using parsed parallel concatenated codes. Even more specifically, the present invention relates to a pseudo random interleaver design within a data stream encoder using parsed parallel concatenated codes that accounts for the parsing function of the encoder resulting in improved asymptotic performance.
Third generation code division multiple access (CDMA) communications systems typically employ forward error correction (FEC) schemes using, for example, Turbo codes. As such, prior to being transmitted over a communications channel, for example, a data stream is often encoded such that the content of the data is not recoverable to those intercepting the transmitted data stream. Typically, such data streams may be encoded using a Turbo encoder, which consists of a parallel concatenation of two constituent encoders in which the input data stream x(k) is encoded by both encoders to produce parity bits y1(k) and y2(k). The first and second constituent encoders each see the input data stream as presented in a different order due to an embedded Turbo interleaver. Each constituent encoder encodes its interleaver. Each constituent encoder encodes its respective data bits to provide output coded bits x(k), y1(k), y2(k). These output coded bits are typically punctured to produce a desired code rate. For example, the natural rate of a conventional Turbo encoder is ⅓; however, the coded output is punctured to produce an output code rate of xc2xd. At the receiver a respective Turbo decoder is required to decode the coded data stream. The operation and functionality of conventional Turbo codes, Turbo encoders and decoders is well known in the art.
More recently, encoders using parsed parallel concatenated codes are being implemented. A parsed parallel concatenated code (also referred to as P2CCC) is a code construction that is similar to the conventional turbo code structure, but with a parser to distribute subsets of information bits from the input data stream to various parallel constituent encoders. The parsing strategy breaks up the input sequences producing low Hamming weight error events, thereby improving the weight spectrum and asymptotic performance of the code, while not impacting the sharp xe2x80x9cwaterfall regionxe2x80x9d performance of the corresponding turbo code. Thus, the parsing function serves a similar function as the embedded turbo interleaver. The parsed streams are then separately interleaved and separately encoded by respective constituent encoders. The output of the constituent encoders is then punctured in a prescribed puncturing pattern to produce the overall code rate. In a typical design, the parser ideally ensures that every information bit in the input data stream is seen by at least two of the constituent encoders in order that soft-decision decoding will be able to efficiently refine the likelihood decision statistic for each information bit based on the outputs from multiple constituent decoders.
While it is known how to design interleavers reasonably well for conventional turbo codes, the parsing function makes the design of interleavers for P2CCC encoders a non-trivial problem. Using random interleavers, the P2CCC encoder has a performance advantage over the conventional turbo codes in the asymptotic region. However, when s-random interleavers (i.e. a pseudo random permutation that avoids mapping positions within a window of width S to new positions that are also within a window of width S, thus guaranteeing a minimum separation between positions) are used, the performance advantage of P2CCC is eliminated over conventional turbo codes. This is due to the fact that conventional s-random interleavers do not take into account the parsing function common to P2CCC encoders.
The present invention advantageously addresses the needs above as well as other needs by providing an interleaver design for a parsed parallel concatenated coder implementing coordinated s-random interleavers and accounting for the parsing function.
In one embodiment, the invention can be characterized as a method of interleaving an input data stream for parsed parallel concatenated code encoding comprising the steps of: parsing the input data stream into a plurality of parsed data substreams; and forming sets of shared information bits, wherein each of the sets of shared information bits comprises information bits in common with respective pairs of the plurality of parsed data substreams. In a variation of this embodiment, a further step comprises constructing constituent permutations of one or more of the sets of shared information bits. In yet a further variation of this embodiment, a further step comprises interlacing respective pairs of the sets of shared information bits to form respective interleaved data substreams.
In another embodiment, the invention can be characterized as an interleaver design for a parsed parallel concatenated code encoder including a parser for parsing an input data stream into a plurality of parsed data substreams. Also included is a plurality of interleavers coupled to the parser such that each of the plurality of interleavers constructs constituent permutations of respective ones of sets of shared information bits. Each of the sets of shared information bits comprises information bits in common to respective pairs of the plurality of parsed data substreams.